﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ComputerArchitecture.Core.Logging;

namespace ComputerArchitecture.Core
{
    public abstract class LoggingObject : ILoggingObject
    {
        #region Fields

        private readonly ILoggingService _loggingService;

        #endregion

        #region Properties

        public ILoggingService LoggingService
        {
            get { return _loggingService; }
        }

        #endregion

        #region Constructors

        protected LoggingObject(ILoggingService loggingService)
        {
            ArgumentValidator.NullValidate(loggingService);
            _loggingService = loggingService;
        }

        #endregion
    }

    public interface ILoggingObject
    {
        ILoggingService LoggingService { get; }
    }
}
